Storage systems for computers commonly comprise a storage device controller and an associated storage device such as a disk drive. The controller controls the transfer of data between a computer and the storage device via a component interface. One type of component interface is referred to as an IDE (Intelligent Drive Electronics or Integrated Drive Electronics). IDE is used as an interface standard for mass storage devices in which the controller is integrated into the disk or CD-ROM drive. IDE devices are also referred to as ATA (Advanced Technology Attachment) devices. ATA devices can be either serial or parallel devices.
In disk drives, data is input in logical blocks and stored in physical blocks on the physical sectors of the disk. The standard physical block size is 512 bytes. Some devices allow the size of the physical blocks to be altered by reformatting the storage device, thus allowing the standard block size of 512 bytes to be modified. However, it has become common practice for many devices to fix the block size to 512 bytes with no provision for reformatting. An example of this system exists in both serial and parallel IDE/ATA devices. Devices which allow the block size to be changed tend to be more expensive than those providing a fixed block size.
One way in which cheaper fixed block size devices can be used for larger logical block sizes is by mapping the larger logical block over two or more of the fixed physical blocks. Therefore one logical block may be written over a number of physical blocks so that any given physical block may contain parts of two different logical blocks. This process requires management of a mapping table which relates each logical block to the physical blocks in which the data is actually stored. Reading, writing, or rewriting data therefore involves significant processing overheads and thus affects the performance of the storage device and any connected computer. Writing or rewriting data is a particular problem as any given physical block may contain data from other logical blocks as well as the data for logical block being written or rewritten. Thus, writing or rewriting of one logical block requires saving data from other logical blocks in an alternative location before the writing or rewriting process can begin. The processing overhead for writing and rewriting are much greater than for basic read processes.
Therefore there is a need to provide a fixed physical block size storage device which can handle larger logical blocks with reduced processing overhead.